package com.wzkun.aicraft.config;

import dev.langchain4j.community.store.memory.chat.redis.RedisChatMemoryStore;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;


/**
 * Redis 持久化会话记忆存储配置类
 * 用于配置和创建RedisChatMemoryStore Bean
 *
 * @author wzk
 * @since 2025/11/15
 */
@Configuration
@ConfigurationProperties(prefix = "spring.data.redis")
@Data
public class RedisChatMemoryStoreConfig {

    // Redis服务器主机地址
    private String host;

    // Redis服务器端口
    private int port;

    // Redis服务器数据库索引
    private int database;

    // Redis服务器密码
    private String password;

    // Redis中数据的生存时间(毫秒)
    private long ttl;

    /**
     * 创建并配置RedisChatMemoryStore Bean
     * @return 配置好的RedisChatMemoryStore实例
     */
    @Bean
    public RedisChatMemoryStore redisChatMemoryStore() {
        return RedisChatMemoryStore.builder()
                .host(host)        // 设置Redis主机地址
                .port(port)        // 设置Redis端口
                .password(password)// 设置Redis密码
                .ttl(ttl)          // 设置数据生存时间
                .build();
    }
}

